import { defineStore } from 'pinia';
import { groupMsg, lastThreeMsg, pageMsg } from '@/utils/api/msg.ts';

export const useMessageStore = defineStore('messages', {
  state: () => ({
    groupMessages: [],
    lastThreeMessages: [],
    pageMessages: [],
  }),
  actions: {
    async refreshAllMessages({ msgType = '' } = {}) { // 默认 msgType 为空字符串
      try {
        const [groupMsgsResult, lastThreeMsgsResult, pageMsgsResult] = await Promise.all([
          groupMsg(),
          lastThreeMsg({
            data: {
              pageNo: 1,
              pageSize: 10,
              keyword: '',
              msgType: msgType, // 从函数参数中获取 msgType
            },
          }),
          pageMsg(),
        ]);

        this.groupMessages = groupMsgsResult.data || []; // 确保数据是数组，即使 API 返回空或错误
        this.lastThreeMessages = lastThreeMsgsResult.data || []; // 同上
        this.pageMessages = pageMsgsResult.data || []; // 同上
      } catch (err) {
        console.error('Failed to refresh messages:', err);
        // 可以在这里添加额外的错误处理逻辑，比如重置状态或显示通知
      }
    },
  },
});